package cn.chen.数据结构.二叉树.赫夫曼树;

/**
 *
 * 结点类
 * 为了让该类支持排序，Collections集合排序，让该类实现一个接口Comparable
 *
 * Collections工具类的sort方法（一个参数）的使用前提：
 * 1）被排序集合中的元素必须要实现Comparable接口，并且实现compareTo方法定义排序的规则。
 * 2）如果不实现接口并重写方法那么sort方法就没有任何作用。
 *
 * Comparable接口的compareTo方法
 * Comparator接口的compare方法
 */
public class HuffmanNode implements Comparable<HuffmanNode> {

    public int value;   // 权值
    public HuffmanNode left;    // 指向左子节点
    public HuffmanNode right;   // 指向右子节点

    public HuffmanNode(int value) {

        this.value=value;
    }

    @Override
    public String toString() {
        return "HuffmanNode{" +
                "value=" + value +
                '}';
    }

    @Override
    public int compareTo(HuffmanNode o) {

        // 表示从小到大排序
        return this.value-o.value;
    }
}
